package cn.historia.test.domain.strategy;

import cn.historia.domain.strategy.service.armory.IStrategyArmory;
import cn.historia.domain.strategy.service.armory.IStrategyDispatch;
import lombok.extern.slf4j.Slf4j;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import javax.annotation.Resource;

/**
 * @package: cn.historia.test.domain
 * @className: StrategyArmoryTest
 * @author: 云溪
 * @description:
 * @date: 2025/7/18 15:41
 * @version: 1.0
 */
@Slf4j
@RunWith(SpringRunner.class)
@SpringBootTest
public class StrategyArmoryTest {

    @Resource
    private IStrategyArmory strategyArmory;

    @Resource
    private IStrategyDispatch strategyDispatch;

    @Before
    public void test_strategyArmory(){
        boolean success = strategyArmory.assembleLotteryStrategy(100001L);
        log.info("测试结果：{}", success);
    }

    @Test
    public void test_getRandomAwardId(){
        log.info("测试结果：{} - 奖品ID值", strategyDispatch.getRandomAwardId(100001L));
//        log.info("测试结果：{} - 奖品ID值", strategyDispatch.getRandomAwardId(100002L));
//        log.info("测试结果：{} - 奖品ID值", strategyDispatch.getRandomAwardId(100002L));
//        log.info("测试结果：{} - 奖品ID值", strategyDispatch.getRandomAwardId(100002L));
    }

    @Test
    public void test_getAssembleRandomVal_ruleWeightValue(){
        //60:102,103,104,105 200:106,107 1000:105
        log.info("测试结果：{} - 60 策略配置", strategyDispatch.getRandomAwardId(100001L, "60:102,103,104,105"));
        log.info("测试结果：{} - 200 策略配置", strategyDispatch.getRandomAwardId(100001L, "200:106,107"));
        log.info("测试结果：{} - 1000 策略配置", strategyDispatch.getRandomAwardId(100001L, "1000:105"));
    }


}
